#include "hilos.h"

//**********************************************************************************************
//Creacion de un hilo.
//**********************************************************************************************
pthread_t crearHilo(void * rutina, void * argumentos) {
	pthread_t hilo;
	int i = 0;
	int status = 1;
	i = pthread_create(&hilo,NULL,rutina,argumentos);

	if (i != 0) {
		printf("HILOS.H -> ERROR EN LA CREACION DE UN HILO.\n");
		exit(status);
	}
	return hilo;
}
//**********************************************************************************************
//Esperar un hilo
//**********************************************************************************************
int esperarHilo(pthread_t hilo) {
	return pthread_join(hilo,NULL);
}
//**********************************************************************************************
//Crear un mutex
//**********************************************************************************************
int crearMutexHilo(pthread_mutex_t * mutex) {
	return pthread_mutex_init(mutex,NULL);
}
//**********************************************************************************************
//P mutex en un hilo
//**********************************************************************************************
int pMutexHilo(pthread_mutex_t * mutex) {
	return pthread_mutex_lock(mutex);
}
//**********************************************************************************************
//V mutex en un hilo
//**********************************************************************************************
int vMutexHilo(pthread_mutex_t * mutex) {
	return pthread_mutex_unlock(mutex);
}
//**********************************************************************************************
//Eliminar mutex
//**********************************************************************************************
int eliminarMutexHilo(pthread_mutex_t * mutex) {
	return pthread_mutex_destroy(mutex);
}

